library(leaflet)
library(jsonlite)
Mig <- sf::st_read("D:/R Studio/geospatial-datascience-r/geospatial-datascience-r/data/BGD_ADMIN_1.geojson")
## Reading layer `BGD_ADMIN_1' from data source 
##   `D:\R Studio\geospatial-datascience-r\geospatial-datascience-r\data\BGD_ADMIN_1.geojson' 
##   using driver `GeoJSON'
## Simple feature collection with 8 features and 14 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 88.00863 ymin: 20.59061 xmax: 92.68031 ymax: 26.63451
## Geodetic CRS:  WGS 84
Int_MigPal <- colorQuantile(colorRamp(c("#1d91c0","#004BED", "#0043D3", "#003BBA","#0033A0", "#002B87", "#00236D","#001B54")), Mig$Int_Mig, n=8)
#set pop-up content
Mig$popup <- paste("<strong>",Mig$ADM1_EN, "</br>",
                     "</strong>","International Migration:", prettyNum(Mig$Int_Mig, big.mark = ","))
Int_Mig <- leaflet()%>% 
addPolygons(data = Mig,
              stroke = TRUE,
              weight = 1.3,
              opacity = 1,
              color = ~Int_MigPal(Int_Mig),
              fillOpacity = 0.9,
              popup = ~popup,
              highlightOptions = highlightOptions(color = "#FF671F", weight = 1.5,
                                                  bringToFront = TRUE, fillOpacity = 0.5),) %>% 
addLegend("bottomright",opacity = 1,
          colors =c("#1d91c0","#004BED", "#0043D3", "#003BBA", "#0033A0", "#002B87", "#00236D", "#001B54"),
          title = "International Migration",
          labels= c("Rangpur","Dhaka","Barishal","Mymensingh", "Chattogram","Rajshahi", "Khulna", "Sylhet")
          ) %>% 
  addProviderTiles(providers$Esri.WorldImagery, group = "Basemap - aerial") %>%
  addProviderTiles(providers$CartoDB.Positron, group = "Basemap - greyscale") %>%
  addProviderTiles(providers$CartoDB.DarkMatter, group = "Basemap - dark") %>%
  addEasyButton(easyButton(
    icon="fa-globe", title="Zoom to Level 1",
    onClick=JS("function(btn, map){ map.setZoom(1); }"))) %>%
  addEasyButton(easyButton(
    icon="fa-crosshairs", title="Locate Me",
    onClick=JS("function(btn, map){ map.locate({setView: true}); }")))%>%
  addLayersControl(
    baseGroups = c("Basemap - dark","Basemap - greyscale","Basemap - aerial"),
    options = layersControlOptions(collapsed = TRUE))
Int_Mig